﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace QLNSClient
{
    public partial class Frm_CV : DevExpress.XtraEditors.XtraForm
    {
        QLNSServiceReference.QLNSServiceClient sv = new QLNSServiceReference.QLNSServiceClient();
                
        public Frm_CV()
        {
            InitializeComponent();
        }

        public void LoadData()
        {
            btn_Luu.Enabled = false;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
            btn_Huy.Enabled = false;

            txt_MaCV.Enabled = false;
            txt_TenCV.Enabled = false;
            txt_HeSoCV.Enabled = false;
            lke_loaiDV.Enabled = false;
            
            gv_dsCV.DataSource = sv.getCV();
            lke_loaiDV.Properties.DataSource = sv.getLoaiDV();
            gridView1.Columns[0].Caption = "Mã chức vụ";
            gridView1.Columns[1].Caption = "Tên chức vụ";
            gridView1.Columns[2].Caption = "Hệ số chức vụ";
            gridView1.Columns[3].Caption = "Loại đơn vị";
        }

        private void Frm_CV_Load(object sender, EventArgs e)
        {
            LoadData();
        }

        private void btn_Them_Click(object sender, EventArgs e)
        {
            List<QLNSServiceReference.CHUC_VU> listLastID = new List<QLNSServiceReference.CHUC_VU>(sv.getLastCV());
            string lastID = listLastID[0].Ma_CV;
            int vt = lastID.IndexOf("V");
            string lastnum = lastID.Substring(vt+1,2);
            int tempID=Int32.Parse(lastnum);
            int newnum=tempID+1;

            string newid;
            if (newnum < 10)
            {
                newid = "CV0" + newnum.ToString();
                txt_MaCV.Text = newid;
            }
            else
            {
                newid = "CV" + newnum.ToString();
                txt_MaCV.Text = newid;
            }
         
            txt_MaCV.Enabled = false;
            txt_TenCV.Enabled = true;
            txt_HeSoCV.Enabled = true;
            lke_loaiDV.Enabled = true;

            txt_TenCV.Text = "";
            txt_HeSoCV.Text = "";
            lke_loaiDV.EditValue = null;
            
            btn_Luu.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
            btn_Huy.Enabled = true;
        }

        private void btn_Luu_Click(object sender, EventArgs e)
        {
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;

            string tempMaCV = txt_MaCV.Text;
            string tempTenCV = txt_TenCV.Text;
            string tempHeSoCV;
            if (txt_HeSoCV.Text == "")
            {
                tempHeSoCV = null;
            }
            else
            {
                tempHeSoCV = txt_HeSoCV.Text;
            }
            string tempLoaiDV;
            if (lke_loaiDV.EditValue == null)
            {
                tempLoaiDV = null;
            }
            else
            {
                tempLoaiDV = lke_loaiDV.EditValue.ToString();
            }

            QLNSServiceReference.CHUC_VU cv = new QLNSServiceReference.CHUC_VU();
            cv.Ma_CV = tempMaCV;
            cv.TenCV = tempTenCV;
            if (tempHeSoCV == null)
            {
                cv.HeSoCV = 0;
            }
            else
            {
                cv.HeSoCV = float.Parse(tempHeSoCV);
            }
            if (tempLoaiDV == null)
            {
                cv.Ma_Loai_DV = "DVT";
            }
            else
            {
                cv.Ma_Loai_DV = tempLoaiDV;
            }

            if (demsua == 1)
            {
                DialogResult dr = MessageBox.Show("Bạn có chắc muốn cập nhật lại thông tin?!", "Cảnh báo", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
                if (dr == DialogResult.OK)
                {
                    sv.updateCV(cv);
                    LoadData();
                    demsua = 0;
                    MessageBox.Show("Cập nhật thông tin chức vụ '"+txt_TenCV.Text+"' mã '"+txt_MaCV+"' thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                int kq = sv.addCV(cv);
                if (kq != -1)
                {
                    LoadData();
                    MessageBox.Show("Thêm chức vụ '"+txt_TenCV.Text+"' mã '"+txt_MaCV.Text+"' thành công!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Chức vụ đã tồn tại! Vui lòng xem lại!", "Cảnh báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private void btn_Huy_Click(object sender, EventArgs e)
        {
            demsua = 0;

            txt_MaCV.Enabled = false;
            txt_TenCV.Enabled = false;
            txt_HeSoCV.Enabled = false;
            
            btn_Luu.Enabled = false;
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;
            btn_Xoa.Enabled = false;
            btn_Sua.Enabled = false;
        }

        int demsua = 0;
        private void btn_Sua_Click(object sender, EventArgs e)
        {
            demsua = 1;

            txt_TenCV.Enabled = true;
            txt_HeSoCV.Enabled = true;
            lke_loaiDV.Enabled = true;

            btn_Luu.Enabled = true;
            btn_Them.Enabled = false;
            btn_Huy.Enabled = true;
            btn_Sua.Enabled = false;

        }

        private void btn_Xoa_Click(object sender, EventArgs e)
        {
            btn_Them.Enabled = true;
            btn_Luu.Enabled = false;
        }

        private void gv_dsCV_Click(object sender, EventArgs e)
        {
            btn_Luu.Enabled = false;
            btn_Xoa.Enabled = true;
            btn_Sua.Enabled = true;
            btn_Huy.Enabled = false;
            btn_Them.Enabled = true;

            txt_MaCV.Enabled = false;
            txt_TenCV.Enabled = false;
            txt_HeSoCV.Enabled = false;
            lke_loaiDV.Enabled = false;

            try
            {
                txt_MaCV.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[0]);
                txt_TenCV.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[1]);
                txt_HeSoCV.Text = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[2]);
                lke_loaiDV.EditValue = gridView1.GetFocusedRowCellDisplayText(gridView1.Columns[3]);
            }
            catch
            { }
        }

        private void btn_ThemLoaiDV_Click(object sender, EventArgs e)
        {
            Frm_LoaiDV frmLoaiDV = new Frm_LoaiDV();
            frmLoaiDV.ShowDialog();
            lke_loaiDV.Properties.DataSource = sv.getLoaiDV();
        }

        private void labelControl3_Click(object sender, EventArgs e)
        {

        }
    }
}